home *** CD-ROM | disk | FTP | other *** search
/ Visual Basic Controls / Visual Basic Controls.iso / vbcontrol / sheriffa / csheriff.cls < prev    next >
Encoding:
Visual Basic class definition  |  1999-05-27  |  6.7 KB  |  220 lines

  1. VERSION 1.0 CLASS
  2. BEGIN
  3.   MultiUse = -1  'True
  4.   Persistable = 0  'NotPersistable
  5.   DataBindingBehavior = 0  'vbNone
  6.   DataSourceBehavior  = 0  'vbNone
  7.   MTSTransactionMode  = 0  'NotAnMTSObject
  8. END
  9. Attribute VB_Name = "CSheriff"
  10. Attribute VB_GlobalNameSpace = False
  11. Attribute VB_Creatable = True
  12. Attribute VB_PredeclaredId = False
  13. Attribute VB_Exposed = False
  14. Attribute VB_Ext_KEY = "SavedWithClassBuilder" ,"Yes"
  15. Attribute VB_Ext_KEY = "Top_Level" ,"Yes"
  16. 'local variable(s) to hold property value(s)
  17. Private m_hLicence As Long 'local copy
  18. Private m_lLastError As Long 'local copy
  19. Private m_strUserName As String 'local copy
  20. Private m_strProductID As String 'local copy
  21. Private m_arySecrets As SLS_SECRET
  22. Private m_bSecretsSet As Boolean
  23.  
  24.  
  25. Public Function Create(ByVal strProductID As String, ByVal strUserName As String) As Boolean
  26.     m_strProductID = strProductID
  27.     m_strUserName = strUserName
  28.     m_bSecretsSet = False
  29.     Create = True
  30. End Function
  31.  
  32. Public Function Destroy() As Boolean
  33.     Destroy = True
  34. End Function
  35.  
  36. Public Function Register(ByVal strProductName As String, ByVal strLicencePath As String) As Boolean
  37.     m_lLastError = SLS_Register(m_strProductID, strProductName, strLicencePath)
  38.     Register = Succeeded()
  39. End Function
  40.  
  41. Public Function Request() As Boolean
  42.     Dim vRequest As SLS_REQUEST
  43.     Dim vPermit As SLS_PERMIT
  44.     Dim vChallenge As SLS_CHALLENGE
  45.         
  46.     vRequest.UnitsReserved = 0
  47.     vPermit.AccessKey = 0
  48.     vPermit.UnitsGranted = 0
  49.     
  50.     If (m_bSecretsSet = True) Then
  51.     'Create Challenge
  52.         m_lLastError = SLS_CreateChallenge(m_arySecrets, 4, vRequest, 4, vChallenge)
  53.         If (Succeeded() = False) Then
  54.             Request = False
  55.             Exit Function
  56.         End If
  57.         m_lLastError = SLS_REQUEST(m_strProductID, m_strUserName, vRequest, vPermit, m_hLicence, vChallenge)
  58.         If (Succeeded() = True) Then
  59.         'Verify Challenge
  60.             m_lLastError = SLS_VerifyChallenge(m_arySecrets, 4, vPermit, 8, vChallenge)
  61.         End If
  62.         Request = Succeeded()
  63.         Exit Function
  64.     End If
  65.         
  66.     vChallenge.Protocol = SLS_NO_PROTOCOL
  67.     m_lLastError = SLS_REQUEST(m_strProductID, m_strUserName, vRequest, vPermit, m_hLicence, vChallenge)
  68.     Request = Succeeded()
  69. End Function
  70.  
  71. Public Function Update() As Boolean
  72.     Dim vUpdate As SLS_UPDATE
  73.     Dim vPermit As SLS_PERMIT
  74.     Dim vChallenge As SLS_CHALLENGE
  75.     
  76.     vUpdate.UnitsConsumed = 0
  77.     vUpdate.UnitsReserved = 0
  78.     
  79.     If (m_bSecretsSet = True) Then
  80.     'Create Challenge
  81.         m_lLastError = SLS_CreateChallenge(m_arySecrets, 4, vUpdate, 8, vChallenge)
  82.         If (Succeeded() = False) Then
  83.             Update = False
  84.             Exit Function
  85.         End If
  86.         m_lLastError = SLS_UPDATE(m_strProductID, m_hLicence, vUpdate, vPermit, vChallenge)
  87.         If (Succeeded() = True) Then
  88.         'Verify Challenge
  89.             m_lLastError = SLS_VerifyChallenge(m_arySecrets, 4, vPermit, 8, vChallenge)
  90.         End If
  91.         Update = Succeeded()
  92.         Exit Function
  93.     End If
  94.     
  95.     vChallenge.Protocol = SLS_NO_PROTOCOL
  96.     m_lLastError = SLS_UPDATE(m_strProductID, m_hLicence, vUpdate, vPermit, vChallenge)
  97.     Update = Succeeded()
  98. End Function
  99.  
  100. Public Function Releases() As Boolean
  101.     Dim vRelease As SLS_RELEASE
  102.     Dim vChallenge As SLS_CHALLENGE
  103.     
  104.     vRelease.UnitsConsumed = 0
  105.     vChallenge.Protocol = SLS_NO_PROTOCOL
  106.     
  107.     If (m_bSecretsSet = True) Then
  108.     'Create Challenge
  109.         m_lLastError = SLS_CreateChallenge(m_arySecrets, 4, vRelease, 4, vChallenge)
  110.     End If
  111.         
  112.     m_lLastError = SLS_RELEASE(m_strProductID, m_hLicence, vRelease, vChallenge)
  113.     Releases = Succeeded()
  114. End Function
  115.  
  116. Public Function GetReference(strReference As String) As Boolean
  117.     m_lLastError = SLS_GetReference(m_strProductID, strReference)
  118.     GetReference = Succeeded()
  119. End Function
  120.     
  121. Public Function SetLicence(ByVal strReference, ByVal strLicence As String) As Boolean
  122.     m_lLastError = SLS_SetLicence(m_strProductID, strReference, strLicence)
  123.     SetLicence = Succeeded()
  124. End Function
  125.         
  126. Public Function GetLastError() As Long
  127.     GetLastError = m_lLastError
  128. End Function
  129.  
  130. Public Function GetLastErrorMessage(strErrorMsg As String) As Boolean
  131.     m_lLastError = SLS_GetErrorMessage(m_lLastError, strErrorMsg)
  132.     GetLastErrorMessage = Succeeded()
  133. End Function
  134.  
  135. Public Function Succeeded() As Boolean
  136.     Succeeded = (m_lLastError = 0)
  137. End Function
  138.  
  139. Public Sub SetSecrets(Secrets As Variant)
  140.     Dim nIdx As Integer
  141.     nIdx = 0
  142.     For i = 0 To 3
  143.         For j = 0 To 17
  144.             m_arySecrets.Secret(nIdx) = Secrets(i * 18 + j)
  145.             nIdx = nIdx + 1
  146.         Next j
  147.         For j = 18 To 31
  148.             m_arySecrets.Secret(nIdx) = 0
  149.             nIdx = nIdx + 1
  150.         Next j
  151.         
  152.     Next i
  153.     m_bSecretsSet = True
  154. End Sub
  155. Public Function SetOptions(ByVal HeartbeatTime As Long, ByVal ReclaimTime As Long) As Boolean
  156.     
  157.     If (m_bSecretsSet = False) Then
  158.         m_lLastError = SLS_E_BAD_SECRET
  159.         SetOptions = False
  160.     End If
  161.  
  162.     Dim vOptions As SLS_OPTIONS
  163.     vOptions.HeartbeatTime = HeartbeatTime
  164.     vOptions.ReclaimTime = ReclaimTime
  165.     vOptions.Reserved1 = 0
  166.     vOptions.Reserved2 = 0
  167.     
  168.     Dim vChallenge As SLS_CHALLENGE
  169.  
  170.     'Create Challenge
  171.     m_lLastError = SLS_CreateChallenge(m_arySecrets, 4, vOptions, 16, vChallenge)
  172.     If (Succeeded() = False) Then
  173.         SetOptions = False
  174.         Exit Function
  175.     End If
  176.     m_lLastError = SLS_SetOptions(m_strProductID, m_hLicence, vOptions, vChallenge)
  177.     SetOptions = Succeeded()
  178.     
  179. End Function
  180. Public Function License(ByVal lDays As Long) As Boolean
  181.     
  182.     If (m_bSecretsSet = False) Then
  183.         m_lLastError = SLS_E_BAD_SECRET
  184.         License = False
  185.     End If
  186.     
  187.     Dim vLicence As SLS_LICENCE
  188.     vLicence.AccessKey = 0
  189.     vLicence.CoUsers = 1
  190.     vLicence.Meter = lDays
  191.     vLicence.EndDate.Year = 0
  192.     vLicence.EndDate.Month = 0
  193.     vLicence.EndDate.Day = 0
  194.     vLicence.Type = SLS_TYPE_TIME_METER + SLS_TYPE_CONCURRENCY
  195.  
  196.     Dim vChallenge As SLS_CHALLENGE
  197.  
  198.     'Create Challenge
  199.     m_lLastError = SLS_CreateChallenge(m_arySecrets, 4, vLicence, 28, vChallenge)
  200.     If (Succeeded() = False) Then
  201.         License = False
  202.         Exit Function
  203.     End If
  204.     m_lLastError = SLS_License(m_strProductID, vLicence, vChallenge)
  205.     License = Succeeded()
  206.     
  207. End Function
  208.  
  209. Public Function IsProductInstalled() As Boolean
  210.     m_lLastError = SLS_IsProductInstalled(m_strProductID)
  211.     IsProductInstalled = Succeeded()
  212. End Function
  213.  
  214. Public Function IsProductLicensed() As Boolean
  215.     m_lLastError = SLS_IsProductLicensed(m_strProductID)
  216.     IsProductLicensed = Succeeded()
  217. End Function
  218.  
  219.  
  220.